── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.1     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.1
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Loading required package: viridisLite
Warning: package 'plotly' was built under R version 4.4.1

Attaching package: 'plotly'

The following object is masked from 'package:ggplot2':

    last_plot

The following object is masked from 'package:stats':

    filter

The following object is masked from 'package:graphics':

    layout
`summarise()` has grouped output by 'sp'. You can override using the `.groups`
argument.
`summarise()` has grouped output by 'sp'. You can override using the `.groups`
argument.

`summarise()` has grouped output by 'Cno'. You can override using the `.groups`
argument.
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.
This warning is displayed once every 8 hours.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
generated.

Warning in geom_point(data = point_sp_tree %>% filter(SPCODE.UPDATE ==
"CROTRO"), : Ignoring unknown aesthetics: text
Warning in geom_point(data = point_sp_tree %>% filter(SPCODE.UPDATE == sps[i]),
: Ignoring unknown aesthetics: text
Warning in geom_point(data = point_sp_tree %>% filter(SPCODE.UPDATE == sps[i]),
: Ignoring unknown aesthetics: text
Warning in geom_point(data = point_sp_tree %>% filter(SPCODE.UPDATE == sps[i]),
: Ignoring unknown aesthetics: text
Warning in geom_point(data = point_sp_tree %>% filter(SPCODE.UPDATE == sps[i]),
: Ignoring unknown aesthetics: text
Warning in geom_point(data = point_trees, aes(x = X, y = Y, col =
factor(SPCODE.UPDATE), : Ignoring unknown aesthetics: text
Warning in geom_point(data = point_trees, aes(x = X, y = Y, col =
factor(SPCODE.UPDATE), : Ignoring unknown aesthetics: text
LS0tDQp0aXRsZTogImRlc2lnbiBmb3IgcG9pbnQgZGVuZHJvbWV0ZXIgc3R1ZHkiDQphdXRob3I6ICIiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCg0KYGBgDQpgYGB7ciBsaWJyYXJpZXMsIGVjaG89Rn0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeSh2aXJpZGlzKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShwbG90bHkpDQpgYGANCg0KYGBge3Igc3BlY2llcyBsaXN0LCBlY2hvPUZ9DQoNCiNyZWFkIGRlbmRyb19pbmNfY2xlYW4uY3N2DQoNCmRlbmRyb19pbmNfY2xlYW4gPC0gcmVhZC5jc3YoImRhdGEvSEtLLWRlbmRyby9kZW5kcm9faW5jX2NsZWFuLmNzdiIpDQpsb2FkKCJkYXRhL0hLSy1kZW5kcm8vZGVuZHJvYnliYW5kLlJEYXRhIikNCnNob3J0bGlzdDwtYygiRElQVEFMIiwgIkhPUEVPRCIsICJURVRSTlUiLCAiVkFUSUhBIiwgIkNIVUtUQSIsICJQT0xZVkkiLCAiRElPU1dJIiwgIkNST1RSTyIsICJTQUNDTEkiLCAiTEFHRVRPIiwgIkdBUlVQSSIsICJBRlpFWFkiKQ0KDQpzcC5saXN0IDwtIHJlYWQuY3N2KCJkYXRhL0hLSy1kZW5kcm8vcG9pbnRfZGVuZHJvX3NwLmNzdiIpDQoNCnNwLmxpc3QNCmBgYA0KYGBge3Igc3BlY2llcyBjaGFycywgZWNobz1GfQ0KDQojbWFrZSBkZW5kcm9iYW5kIHBsb3RzIGFjcm9zcyB5ZWFycyBmb3IgZWFjaCBzcGVjaWVzDQoNCiNzdWJzZXQgZGF0YSB0byB0aGVzZSBzcGVjaWVzDQpwb2ludF9zcDwtZGVuZHJvX2luY19jbGVhbiAlPiUNCmZpbHRlcihzcCAlaW4lIHNob3J0bGlzdCkNCg0KcG9pbnRfc3BfdHJlZTwtdHJlZXMgJT4lDQpmaWx0ZXIoU1BDT0RFLlVQREFURSAlaW4lIHNob3J0bGlzdCkNCg0Kc3BhZ3Bsb3RfaW5kPC1nZ3Bsb3QoKSArDQogIGdlb21fbGluZShkYXRhID0gcG9pbnRfc3AsIGFlcyh4PSgoQ25vLTMpLzIpKzIwMDksIHk9aW5jX2FubnVhbCwgZ3JvdXA9VGFnKSwgYWxwaGE9MC41KSArDQogIGdlb21fbGluZShkYXRhPXBvaW50X3NwICU+JSBncm91cF9ieShzcCxDbm8pICU+JSBkcGx5cjo6c3VtbWFyaXNlKG1lYW5faW5jPW1lYW4oaW5jX2FubnVhbCwgbmEucm09VCkpLCBhZXMoeD0oKENuby0zKS8yKSsyMDA5LCB5PW1lYW5faW5jKSwgY29sPSJyZWQiKSsNCiAgZ2VvbV9saW5lKGRhdGE9cG9pbnRfc3AgJT4lIGdyb3VwX2J5KHNwLENubykgJT4lIGRwbHlyOjpzdW1tYXJpc2UobWVkaWFuX2luYz1tZWRpYW4oaW5jX2FubnVhbCwgbmEucm09VCkpLCBhZXMoeD0oKENuby0zKS8yKSsyMDA5LCB5PW1lZGlhbl9pbmMpLCBjb2w9ImJsdWUiKSsNCiAgZmFjZXRfd3JhcChmYWN0b3Ioc3Apfi4sIA0KICBucm93PTMpKw0KICB4bGFiKCJ5ZWFyIikgKyB5bGFiKCJkaWFtZXRlciBpbmNyZW1lbnQgKGNtKSIpKw0KICBnZ3RpdGxlKCJncm93dGggaW5jcmVtZW50cyBmb3IgY2FuZGlkYXRlIHNwZWNpZXMiKSsNCiAgdGhlbWVfYncoKQ0KDQojcG5nKCJzcGFncGxvdF9wb2ludGRlbmRyb19zcC5wbmciLCB3aWR0aD0xMiwgaGVpZ2h0PTgsIHVuaXRzPSJpbiIsIHJlcz0zMDApDQpzcGFncGxvdF9pbmQNCiNkZXYub2ZmKCkNCg0KDQpzcGFncGxvdF9wb2ludHNwPC1nZ3Bsb3QoKSArDQogICNzcGVjaWVzIHBsb3RzDQogIGdlb21fbGluZShkYXRhPXBvaW50X3NwICU+JSBncm91cF9ieShDbm8sIHNwKSAlPiUgZHBseXI6OnN1bW1hcmlzZShtZWRpYW5faW5jPW1lZGlhbihpbmNfYW5udWFsLCBuYS5ybT1UKSksIA0KICBhZXMoeD0oKENuby0zKS8yKSsyMDA5LCB5PW1lZGlhbl9pbmMsIA0KICBncm91cD1mYWN0b3Ioc3ApLCANCiAgY29sPWZhY3RvcihzcCkpKSsNCiAgZ2VvbV9saW5lKGRhdGE9cG9pbnRfc3AgJT4lIGdyb3VwX2J5KENubykgJT4lIGRwbHlyOjpzdW1tYXJpc2UobWVkaWFuX2luYz1tZWRpYW4oaW5jX2FubnVhbCwgbmEucm09VCkpLCANCiAgYWVzKHg9KChDbm8tMykvMikrMjAwOSwgeT1tZWRpYW5faW5jKSwgY29sPSJibGFjayIsIHNpemU9MikrDQogIHNjYWxlX2NvbG9yX3ZpcmlkaXNfZCgpKw0KICBndWlkZXMoY29sPWd1aWRlX2xlZ2VuZCh0aXRsZT0ic3BlY2llcyIpKSsNCiAgeGxhYigieWVhciIpICsgeWxhYigiZGlhbWV0ZXIgaW5jcmVtZW50IChjbSkiKSsNCiAgZ2d0aXRsZSgiZ3Jvd3RoIGluY3JlbWVudHMgZm9yIGNhbmRpZGF0ZSBzcGVjaWVzIikrDQogIHRoZW1lX2J3KCkNCg0KI3BuZygic3BhZ3Bsb3RfcG9pbnRkZW5kcm9fc3BzdW0ucG5nIiwgd2lkdGg9NCwgaGVpZ2h0PTQsIHVuaXRzPSJpbiIsIHJlcz0zMDApDQpzcGFncGxvdF9wb2ludHNwDQojZGV2Lm9mZigpDQoNCmBgYA0KYGBge3IgZWxldmF0aW9uLCBlY2hvPUZ9DQojZWxldmF0aW9uIGRhdGENCmhra19lbGV2PC1yZWFkLnRhYmxlKCJkYXRhL0hLSy1vdGhlci9DVEZTRWxldl9oa2sucmRhdGEiKQ0KDQoNCmBgYA0KDQpgYGB7ciBtYXBzLCBlY2hvPUZ9DQojIG1ha2UgbWFwcyBvZiBkZW5kcm9iYW5kIGluZGl2aWR1YWxzIG9mIHNwZWNpZXMNCiMgYmFzZSBtYXAgaXMgaGFiaXRhdCBtYXANCg0KI2hhYml0YXQgZGF0YQ0KaGFiaXRhdDwtcmVhZC5jc3YoImRhdGEvSEtLLW90aGVyL0hLS19oYWJ0eXBlKGluKS5jc3YiKQ0KDQojcGxvdCBhIHRpbGUgbWFwIG9mIGhhYml0YXQgdHlwZXMNCiNwbmcoImRlbmRyb19zcG1hcC5wbmciLCB3aWR0aD0xNiwgaGVpZ2h0PTgsIHVuaXRzPSJpbiIsIHJlcz0zMDApDQpnZ3Bsb3QoKSsNCiAgZ2VvbV90aWxlKGRhdGE9aGFiaXRhdCwgYWVzKHg9eCwgeT15LCBmaWxsPWZhY3RvcihoYWIpKSkrDQogIHNjYWxlX2ZpbGxfdmlyaWRpc19kKG9wdGlvbj0iRSIsIGRpcmVjdGlvbj0tMSkrDQogIGdlb21fcG9pbnQoZGF0YT1wb2ludF9zcF90cmVlLA0KICBhbHBoYT0wLjUsIGFlcyh4PVgsIHk9WSwgc2l6ZT1hcy5udW1lcmljKERCSC4wNCkpKSsNCiAgdGhlbWVfbWluaW1hbCgpKw0KICBmYWNldF93cmFwKGZhY3RvcihTUENPREUuVVBEQVRFKX4uKSsNCiAgY29vcmRfZml4ZWQoKQ0KI2Rldi5vZmYoKQ0KDQpoYWJpdGF0PC1oYWJpdGF0ICU+JQ0KICBkcGx5cjo6bXV0YXRlKENvbCA9IHgvMjAsDQogICAgICAgICAgICAgICAgUm93ID0geS8yMCkNCg0KdHJlZXM8LW1lcmdlKHRyZWVzLCBzZWxlY3QoaGFiaXRhdCwgLWMoWCwgeCwgeSkpLCBieT1jKCJDb2wiLCAiUm93IiksIGFsbC54PVQpDQoNCg0KYGBgDQoNCmBgYHtyIGluZGl2aWR1YWwgc3BlY2llcywgcmVzdWx0cz0nYXNpcycsIGVjaG89Rn0NCg0KcDE8LWdncGxvdCgpKw0KICBnZW9tX3RpbGUoZGF0YT1oYWJpdGF0LCBhZXMoeD14LCB5PXksIGZpbGw9ZmFjdG9yKGhhYikpKSsNCiAgc2NhbGVfZmlsbF92aXJpZGlzX2Qob3B0aW9uPSJFIiwgZGlyZWN0aW9uPS0xKSsNCiAgZ2VvbV9wb2ludChkYXRhPXBvaW50X3NwX3RyZWUgJT4lIGZpbHRlcihTUENPREUuVVBEQVRFPT0iQ1JPVFJPIiksDQogIGFscGhhPTAuNSwgYWVzKHg9WCwgeT1ZLCBzaXplPWFzLm51bWVyaWMoREJILjA0KSwgdGV4dD1wYXN0ZTAoIlRhZzogIixUYWcpKSkrDQogIHRoZW1lX21pbmltYWwoKSsNCiAgI2ZhY2V0X3dyYXAoZmFjdG9yKFNQQ09ERS5VUERBVEUpfi4pKw0KICBjb29yZF9maXhlZCgpDQoNCmdncGxvdGx5KHAxLCB0b29sdGlwID0gYygidGV4dCIsICJzaXplIikpDQoNCnNwczwtYygiSE9QRU9EIiwgIlRFVFJOVSIsICJTQUNDTEkiLCAiUE9MWVZJIikNCg0KZm9yKGkgaW4gMTo0KXsNCg0KcDwtZ2dwbG90KCkrDQogIGdlb21fdGlsZShkYXRhPWhhYml0YXQsIGFlcyh4PXgsIHk9eSwgZmlsbD1mYWN0b3IoaGFiKSkpKw0KICBzY2FsZV9maWxsX3ZpcmlkaXNfZChvcHRpb249IkUiLCBkaXJlY3Rpb249LTEpKw0KICBnZW9tX3BvaW50KGRhdGE9cG9pbnRfc3BfdHJlZSAlPiUgDQogICNmaWx0ZXIoU1BDT0RFLlVQREFURT09IkhPUEVPRCIpLA0KICBmaWx0ZXIoU1BDT0RFLlVQREFURT09c3BzW2ldKSwNCiAgYWxwaGE9MC41LCBhZXMoeD1YLCB5PVksIHNpemU9YXMubnVtZXJpYyhEQkguMDQpLCB0ZXh0PXBhc3RlMCgiVGFnOiAiLFRhZykpKSsNCiAgdGhlbWVfbWluaW1hbCgpKw0KICBnZ3RpdGxlKHBhc3RlMCgic3BlY2llczogIiwgc3BzW2ldKSkrDQogICNmYWNldF93cmFwKGZhY3RvcihTUENPREUuVVBEQVRFKX4uKSsNCiAgY29vcmRfZml4ZWQoKQ0KDQpwcmludChodG1sdG9vbHM6OnRhZ0xpc3QoZ2dwbG90bHkocCwgdG9vbHRpcCA9IGMoInRleHQiLCAic2l6ZSIpKSkpDQp9DQoNCmBgYA0KDQpgYGB7ciBwbG90IG9mIHNlbGVjdGVkIHRyZWVzIGZvciA0IHNwZWNpZXMsIHJlc3VsdHM9J2FzaXMnLCBlY2hvPUZ9DQoNCnBkZW5kcm9fdHJlZXM8LXJlYWQuY3N2KCJwb2ludF9kZW5kcm9fdHJlZXMuY3N2IikNCg0Kc3A0PC1jKCJIT1BFT0QiLCAiVEVUUk5VIiwgIlNBQ0NMSSIsICJQT0xZVkkiKQ0KDQpwZGVuZHJvX2NvbmZpcm08LXBkZW5kcm9fdHJlZXMgJT4lDQpmaWx0ZXIoc3AgJWluJSBzcDQpICU+JQ0KZmlsdGVyKGNvbmZpcm00PT0ieSIpIA0KDQojZmlsdGVyIHRoZSBtYWluIGRhdGFzZXQgd2l0aCB0aGVzZSB0YWdzDQoNCnBvaW50X3RyZWVzPC10cmVlcyAlPiUNCmZpbHRlcihUYWcgJWluJSBwZGVuZHJvX2NvbmZpcm0kVGFnKQ0KDQojcGxvdCB0aGVzZSBvbiB0aGUgaGFiaXRhdCBtYXANCg0KcCA8LSBnZ3Bsb3QoKSsNCiAgZ2VvbV90aWxlKGRhdGE9aGFiaXRhdCwgYWVzKHg9eCsxMCwgeT15KzEwLCBmaWxsPWZhY3RvcihoYWIpKSwgYWxwaGE9MC41KSsNCiAgc2NhbGVfZmlsbF92aXJpZGlzX2Qob3B0aW9uPSJFIiwgZGlyZWN0aW9uPS0xKSsNCiAgZ2VvbV9jb250b3VyKGRhdGE9aGtrX2VsZXYsIGFlcyh4PWNvbC54LCB5PWNvbC55LCB6PWNvbC5lbGV2KSwgY29sPSJibGFjayIpKw0KICBnZW9tX3BvaW50KGRhdGE9cG9pbnRfdHJlZXMsIGFlcyh4PVgsIHk9WSwgDQogIGNvbD1mYWN0b3IoU1BDT0RFLlVQREFURSksDQogIHNpemU9YXMubnVtZXJpYyhEQkguMDQpLCANCiAgdGV4dD1wYXN0ZTAoIlRhZzogIixUYWcpKSkrDQogIHRoZW1lX21pbmltYWwoKSsNCiAgY29vcmRfZml4ZWQoKSsNCiAgZ2d0aXRsZSgic2VsZWN0ZWQgdHJlZXMgZm9yIDQgc3BlY2llcyBkZXNpZ24iKSsNCiAgeGxhYigiIikgKyB5bGFiKCIiKSsNCiAgZ3VpZGVzKGZpbGw9Im5vbmUiLCBzaXplPSJub25lIiwNCiAgY29sPWd1aWRlX2xlZ2VuZCh0aXRsZT0ic3BlY2llcyIpKQ0KDQpnZ3Bsb3RseShwLCB0b29sdGlwID0gYygidGV4dCIsICJzaXplIikpDQoNCmBgYA0KDQpgYGB7ciBwbG90IG9mIHNlbGVjdGVkIHRyZWVzIGZvciA4IHNwZWNpZXMsIHJlc3VsdHM9J2FzaXMnLCBlY2hvPUZ9DQoNCnBkZW5kcm9fdHJlZXM8LXJlYWQuY3N2KCJwb2ludF9kZW5kcm9fdHJlZXMuY3N2IikNCg0KcGRlbmRyb19jb25maXJtPC1wZGVuZHJvX3RyZWVzICU+JQ0KI2ZpbHRlcihzcCAlaW4lIHNwNCkgJT4lDQpmaWx0ZXIoY29uZmlybTg9PSJ5IikgDQoNCiNmaWx0ZXIgdGhlIG1haW4gZGF0YXNldCB3aXRoIHRoZXNlIHRhZ3MNCg0KcG9pbnRfdHJlZXM8LXRyZWVzICU+JQ0KZmlsdGVyKFRhZyAlaW4lIHBkZW5kcm9fY29uZmlybSRUYWcpDQoNCiNwbG90IHRoZXNlIG9uIHRoZSBoYWJpdGF0IG1hcA0KDQpwIDwtIGdncGxvdCgpKw0KICBnZW9tX3RpbGUoZGF0YT1oYWJpdGF0LCBhZXMoeD14KzEwLCB5PXkrMTAsIGZpbGw9ZmFjdG9yKGhhYikpLCBhbHBoYT0wLjUpKw0KICBzY2FsZV9maWxsX3ZpcmlkaXNfZChvcHRpb249IkUiLCBkaXJlY3Rpb249LTEpKw0KICBnZW9tX2NvbnRvdXIoZGF0YT1oa2tfZWxldiwgYWVzKHg9Y29sLngsIHk9Y29sLnksIHo9Y29sLmVsZXYpLCBjb2w9ImJsYWNrIikrDQogIGdlb21fcG9pbnQoZGF0YT1wb2ludF90cmVlcywgYWVzKHg9WCwgeT1ZLCANCiAgY29sPWZhY3RvcihTUENPREUuVVBEQVRFKSwNCiAgc2l6ZT1hcy5udW1lcmljKERCSC4wNCksIA0KICB0ZXh0PXBhc3RlMCgiVGFnOiAiLFRhZykpKSsNCiAgdGhlbWVfbWluaW1hbCgpKw0KICBjb29yZF9maXhlZCgpKw0KICBnZ3RpdGxlKCJzZWxlY3RlZCB0cmVlcyBmb3IgOCBzcGVjaWVzIGRlc2lnbiIpKw0KICB4bGFiKCIiKSArIHlsYWIoIiIpKw0KICBndWlkZXMoZmlsbD0ibm9uZSIsIHNpemU9Im5vbmUiLA0KICBjb2w9Z3VpZGVfbGVnZW5kKHRpdGxlPSJzcGVjaWVzIikpDQoNCmdncGxvdGx5KHAsIHRvb2x0aXAgPSBjKCJ0ZXh0IiwgInNpemUiKSkNCg0KYGBgDQo=